package cn.tedu.fresheveryday.service;

import cn.tedu.fresheveryday.pojo.entity.Product;
import cn.tedu.fresheveryday.pojo.dto.ProductPagerDTO;
import cn.tedu.fresheveryday.pojo.vo.ProductDetailVO;
import cn.tedu.fresheveryday.pojo.vo.ProductSimpleVO;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

public interface IProductService {
    /**
     * 通过id查询商品
     *
     * @param id
     * @return
     */
    @Transactional
    ProductDetailVO selectById(int id);

    /**
     * 查询新品
     * @return
     */
    List<ProductSimpleVO> selectNew();

    /**
     * 根据商品类型id和商品名查询商品
     * @param productPagerDTO
     * @return
     */
    List<Product> selectByPage(ProductPagerDTO productPagerDTO);

    /**
     * 查询总记录数
     * @param productPagerDTO
     * @return
     */
    int selectCountByPage(ProductPagerDTO productPagerDTO);

    /**
     * 预热商品数据的缓存
     */
    void preloadCache();
}